﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FM.矩阵.控制.Event;
using FM.矩阵.控制.Models;
using Microsoft.Practices.ObjectBuilder2;
using Microsoft.Practices.Prism.Mvvm;
using Microsoft.Practices.Prism.PubSubEvents;

namespace FM.矩阵.控制.ViewModels
{
    public class 状态栏ViewModel : BindableBase
    {

        private readonly IEventAggregator 新闻部;

        readonly IList<状态栏Data> 属性列表 = new List<状态栏Data>();


        public 状态栏ViewModel(IEventAggregator 参数新闻部)
        {
            新闻部 = 参数新闻部;
            事件订阅();
            初始化();
        }


        private void 初始化()
        {

            提示 = new 状态栏Data("提示", "就绪");
            循环监听 = new 状态栏Data("循环监听", "关闭");
            下一任务 = new 状态栏Data("下一任务", "未知");
            界面锁定 = new 状态栏Data("界面锁定", "解锁");

            属性列表.Add(提示);
            属性列表.Add(循环监听);
            属性列表.Add(下一任务);
            属性列表.Add(界面锁定);

        }

        private void 事件订阅()
        {
            新闻部.GetEvent<状态更新Event>().Subscribe(状态更新Action, true);
        }

        private void 状态更新Action(状态栏Data obj)
        {
            属性列表.Where(x => x.标识 == obj.标识).ForEach(x => x.数据 = obj.数据);
        }

        public 状态栏Data 提示 { get; set; }

        public 状态栏Data 循环监听 { get; set; }

        public 状态栏Data 下一任务 { get; set; }

        public 状态栏Data 界面锁定 { get; set; }

    }
}